Memory devices are electronic devices arranged to store electrical signals. For example, a basic memory element may be a fuse that can either be open or be closed. Open and closed states of the fuse may be used to designate one bit of information corresponding to a value of 1 or 0, which are sometimes also called a logical value of 1 or 0. Many memory elements can be combined in various arrangements, in order to store multiple bits arranged in words or other combinations. Various electronic circuits including semiconductor devices such as transistors may be used as memory elements.
Memory elements may be classified in two main categories: volatile and non-volatile. Volatile memory requires a source of electrical power to retain its stored data. Most types of random access memory (RAM) fall into this category. Non-volatile memory (NVM) retains its stored data, whether or not it has a source of electrical power.
An NVM device may be implemented as a MOS transistor that has a source, a drain, an access or a control gate, and a floating gate. It is structurally different from a standard MOSFET in that its floating gate is electrically isolated, or “floating”.
In many logic device applications, 70A logic CMOS oxides are used, which may be too thin for reliable NVM operation. In such applications, a small but significant number of NVM bits may fail during use—these may also be called tail bits, because they represent the tail of the retention distribution.
In typical applications, the NVM may not be screened for tail bits during production testing. In those, any tail bits are addressed by solutions for fault tolerance, such as redundant bit storage or error correction coding (ECC). Such solutions perform both error detection and error correction of tail bits. Such solutions, however, increase the size of memory circuits, which may result in increased power consumption and cost.